package marketplace.jpa.entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;

import marketplace.jpa.datas.DataContenidoDigital;



@Entity
public class ContenidoDigital implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name="idContenido", nullable=false, unique=true)
	private int idContenido;
	@Column(name="nombre", nullable=false, unique=true)
	private String nombre;
	@Column(name="descripcion", nullable=false)
	private String descripcion;
	private String video;
	@OneToOne
	private Subcategoria subcategoria;
	@OneToOne
	private Proveedor propietario;
	
	/////////////////// CONSTRUCTOR /////////////////////

	public ContenidoDigital() { super(); }	
	
	public ContenidoDigital(DataContenidoDigital cd) {
		this.setIdContenido(cd.getIdContenido());
		this.setDescripcion(cd.getDescripcion());
		this.setNombre(cd.getNombre());
		this.setSubcategoria(new Subcategoria(cd.getSubcategoria()));
		this.setVideo(cd.getVideo());
		this.setPropietario(new Proveedor(cd.getProveedor()));
	}
	
	public ContenidoDigital(String nombre, String descripcion, String video, Subcategoria scat, Proveedor prov) {		
		this.setDescripcion(descripcion);
		this.setNombre(nombre);
		this.setSubcategoria(scat);
		this.setVideo(video);
		this.setPropietario(prov);
	}

	public ContenidoDigital dataToContenido(DataContenidoDigital cd) {
		this.setIdContenido(cd.getIdContenido());
		this.setDescripcion(cd.getDescripcion());
		this.setNombre(cd.getNombre());
		this.setSubcategoria(new Subcategoria(cd.getSubcategoria()));
		this.setVideo(cd.getVideo());
		this.setPropietario(new Proveedor(cd.getProveedor()));
		return this;
	}	
	
	
	///////////////// GETERS & SETERS ///////////////////
	
	public int getIdContenido() { return idContenido; }
	public void setIdContenido(int idContenido) { this.idContenido = idContenido; }
	
	public String getNombre() { return nombre; }
	public void setNombre(String nombre) { this.nombre = nombre; }
	
	public String getDescripcion() { return descripcion; }
	public void setDescripcion(String descripcion) { this.descripcion = descripcion; }

	public String getVideo() { return video; }
	public void setVideo(String video) { this.video = video;	}
	
	public Subcategoria getSubcategoria() { return subcategoria; }
	public void setSubcategoria(Subcategoria subcategoria) { this.subcategoria = subcategoria; }

	public Proveedor getPropietario() { return propietario; }
	public void setPropietario(Proveedor propietario) { this.propietario = propietario; }
	
	
}
